package utils

import (
	"math"
)

// XorCompare 通过异或获得差异, 累加结果 > 0 则为不相同, == 0 则为相同, 仅此而已
func XorCompare(a []byte, b []byte) int {
	sum := int(0)
	// 长度不同仅仅为 sum++ 而已, 并且继续下面的异或运算, 保证完整的 Xor 流程
	if len(a) != len(b) {
		sum++
	}
	comLen := int(math.Min(float64(len(a)), float64(len(b))))
	for i := int(0); i < comLen; i++ {
		sum += int(a[i] ^ b[i])
	}
	return sum
}
